package adventure.room;

import adventure.misc.Currency;
import adventure.placeable.Item;
import adventure.placeable.Mobile;
import adventure.placeable.trigger.Trigger;

/**
 *
 * @author Michael Hanns
 *
 */
public interface RoomEdit extends Room, Cloneable {

    // Getters
    public int x();

    public int y();

    public int z();

    public String getClosed();

    public String getLocked();

    public String getBlocked();

    // Setters
    public void setCurrencyType(Currency type);
    
    public void setXYZ(int x, int y, int z);

    public void captureInitialState();

    public void setTitle(String title);

    public void setDescription(String desc);

    public void setSpawnLevel(int level);

    public void setLowLight(boolean flag);

    public void setClosed(String doors);

    public void setLocked(String doors);

    public void setBlocked(String doors);

    public void setRepopTickCount(int ticks);

    public void setCurrencyContents(int value);

    public void addItem(Item i);

    public void addMobile(Mobile m);

    public void addTrigger(Trigger t);

    public void removeItem(Item i);

    public void removeItem(int id);

    public void removeItemAtIndex(int index);

    public void removeMobile(Mobile m);

    public void removeMobile(int id);

    public void removeMobileAtIndex(int index);

    public void removeTrigger(Trigger t);

    public void removeTrigger(int id);

    public void removeTriggerAtIndex(int index);
}
